﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ibba.agil.core;
using ibba.agil.core.common;

namespace ibba.agil.data
{
    public class tbagi017IpiCamo_ENT : EntityData, IDataEntity
    {

        #region data

        public int IPICampo { get; set; }
        public string CodTipoCampo { get; set; }
        public string NomeIPILayoutCampo { get; set; }
        public string TextoValorPadrao { get; set; }
        public string TextoFormatoCampo { get; set; }
        public int TamanhoCampo { get; set; }
        public int NumeroOrdemCampo { get; set; }
        public string CodigoIdentificacaoCampo { get; set; }
        public string IndicadorCampoComplementar { get; set; }
        public string IndicadorDominioCorporativo { get; set; }
        public string TextoNomeDominio { get; set; }
        public string NomeIPILayoutCampoTrabalho { get; set; }

        #endregion

        private manager.tbagi017IpiCamo_MNG _manager;

        public tbagi017IpiCamo_ENT()
        {
            // determina o mapeamento entre a tabela e entidade
            base.MapperTable = new Dictionary<string, string>() { { this.GetType().Name, "TBAGI017_IPI_CAMO" } };

            // determina o mapeamento entre a coluna da tabela e propriedade
            base.Mapper = new Dictionary<string, string>() {      
                    {"IPICampo", "IDT_IPI_CAMO"},
                    {"CodTipoCampo", "COD_TIPO_CAMO"},
                    {"TamanhoCampo", "NUM_TAMA_CAMO"},
                    {"NomeIPILayoutCampo", "NOM_IPI_LAYO_CAMO"},
                    {"TextoValorPadrao" , "TXT_VLR_PADR"},
                    {"TextoFormatoCampo", "TXT_FORT_CAMO"},
                    {"NumeroOrdemCampo", "NUM_ORDE_CAMO"},
                    {"CodigoIdentificacaoCampo", "COD_IDEF_CAMO"},
                    {"IndicadorCampoComplementar", "IND_CAMO_COPL"},
                    {"IndicadorDominioCorporativo", "IND_DOMN_CORO"},
                    {"TextoNomeDominio", "TXT_NOM_DOMN"},
                    {"NomeIPILayoutCampoTrabalho", "NOM_IPI_LAYO_CAMO_TRAB"}

            };

            // determina o mapeamento das chaves
            base.MapperKeys = new Dictionary<string, string>() { 
                     {"IPICampo", "IDT_IPI_CAMO"}
            };

            // determina se a chave é identity
            //base.MapperKeyIsNotIdentity = true;

            // instancia do manager
            _manager = new manager.tbagi017IpiCamo_MNG();
        }


        public override void Save()
        {
            _manager.Save(this);
        }

        public override void Save(TransactionManager transactionContext)
        {
            _manager.Save(this, transactionContext);
        }

        public override void Delete()
        {
            _manager.Delete(this);
        }

        public override void Delete(TransactionManager transactionContext)
        {
            _manager.Delete(this);
        }
    }
}
